home *** CD-ROM | disk | FTP | other *** search
/ Know Your Common Bird Songs / Know Your Common Bird Songs.iso / setup.mst < prev    next >
Text File  |  1994-11-16  |  14KB  |  457 lines

  1. '**************************************************************************
  2. '*                       MSSetup script for AXIA Common Bird Songs
  3. '**************************************************************************
  4.  
  5. '*'$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'mscpydis.inc'
  9. '$INCLUDE 'msdetect.inc'
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST AXIAINFO      = 101
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST APPHELP       = 900
  20. CONST CHECK         = 2500
  21. CONST SMALLWIN      = 2200
  22. CONST RESTART       = 2600
  23. CONST RESTARTII     = 2700
  24. CONST BADPATH       = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL WinDir$
  30. GLOBAL WinSysDir$
  31. GLOBAL DEST$        ''Default destination directory.
  32. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  33. GLOBAL CHECKSTATES$
  34. GLOBAL CUIDLL$ 
  35.  
  36. DECLARE SUB InstallVFW
  37. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  38. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  39. DECLARE SUB Reboot LIB "iniupd.dll"
  40. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  41. DECLARE SUB Install
  42. DECLARE SUB VWInstall
  43. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  44. DECLARE SUB WinExec LIB "kernel.exe" (cmd$, show%)
  45.  
  46. INIT:
  47.     WinDir$ = GetWindowsDir()
  48.     WinSysDir$ = GetWindowsSysDir()
  49.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  50.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  51.  
  52.     SetBitmap CUIDLL$, LOGO
  53.     SetTitle "Axia Know Your Common Bird Songs Setup"
  54.  
  55.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  56.     IF szInf$ = "" THEN
  57.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  58.     END IF
  59.     ReadInfFile szInf$
  60.  
  61.     DEST$ = "C:\AXIACBS"
  62.  
  63. '$IFDEF DEBUG
  64.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  65.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  66.     IF IsDriveValid(WinDrive$) = 0 THEN
  67.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  68.         GOTO QUIT
  69.     END IF
  70. '$ENDIF ''DEBUG
  71.  
  72.  
  73. WELCOME:
  74.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  75.     IF sz$ = "CONTINUE" THEN
  76.         UIPop 1
  77.     ELSE
  78.         GOSUB ASKQUIT
  79.         GOTO WELCOME
  80.     END IF
  81.  
  82.  
  83.  
  84. GETPATH:
  85.     SetSymbolValue "EditTextIn", DEST$
  86.     SetSymbolValue "EditFocus", "END"
  87. GETPATHL1:
  88.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  89.     DEST$ = GetSymbolValue("EditTextOut")
  90.  
  91.     IF sz$ = "CONTINUE" THEN
  92.         IF IsDirWritable(DEST$) = 0 THEN
  93.             GOSUB BADPATH
  94.             GOTO GETPATHL1
  95.         END IF
  96.         UIPop 1
  97.     ELSEIF sz$ = "REACTIVATE" THEN
  98.         GOTO GETPATHL1
  99.     ELSEIF sz$ = "BACK" THEN
  100.         UIPop 1
  101.         GOTO WELCOME
  102.     ELSE
  103.         GOSUB ASKQUIT
  104.         GOTO GETPATH
  105.     END IF
  106.  
  107.  
  108.     Install
  109.  
  110.  
  111. QUIT:
  112.     ON ERROR GOTO ERRQUIT
  113.  
  114.     IF ERR = 0 THEN
  115.         dlg% = EXITSUCCESS
  116.     ELSEIF ERR = STFQUIT THEN
  117.         dlg% = EXITQUIT
  118.     ELSE
  119.         dlg% = EXITFAILURE
  120.     END IF
  121. QUITL1:
  122.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  123.     IF sz$ = "REACTIVATE" THEN
  124.         GOTO QUITL1
  125.     END IF
  126.     UIPop 1
  127.  
  128.     END
  129.  
  130. ERRQUIT:
  131.     i% = DoMsgBox("Setup sources were corrupted, call (403) 262-2942!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  132.     END
  133.  
  134.  
  135.  
  136. BADPATH:
  137.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  138.     IF sz$ = "REACTIVATE" THEN
  139.         GOTO BADPATH
  140.     END IF
  141.     UIPop 1
  142.     RETURN
  143.  
  144.  
  145.  
  146. ASKQUIT:
  147.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  148.  
  149.     IF sz$ = "EXIT" THEN
  150.         UIPopAll
  151.         ERROR STFQUIT
  152.     ELSEIF sz$ = "REACTIVATE" THEN
  153.         GOTO ASKQUIT
  154.     ELSE
  155.         UIPop 1
  156.     END IF
  157.     RETURN
  158.  
  159.  
  160.  
  161. '**
  162. '** Purpose:
  163. '**     Builds the copy list and performs all installation operations.
  164. '** Arguments:
  165. '**     none.
  166. '** Returns:
  167. '**     none.
  168. '*************************************************************************
  169. SUB Install STATIC
  170.  
  171.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  172.     CreateDir DEST$, cmoNone
  173.  
  174. '*    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  175. '*    WriteToLogFile ""
  176. '*    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  177. '*    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  178. '*    WriteToLogFile ""
  179. '*    WriteToLogFile "May have had to create the directory: " + DEST$
  180. '*    WriteToLogFile ""
  181.  
  182.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  183.     AddSectionFilesToCopyList "Ctl3d", MakePath (SrcDir$, "other"), WinSysDir$
  184.     CopyFilesInCopyList
  185.  
  186. '* create the subsets directory
  187.  
  188.     CreateDir MakePath(DEST$,"SUBSETS"), cmoNone
  189.  
  190. '* create the INI file
  191.  
  192.     ini$ = MakePath(WinDir$, "AXIACBS.INI")
  193.     CreateIniKeyValue ini$, "startup", "firsttime", "1" , cmoOverwrite
  194.     CreateIniKeyValue ini$, "midi", "music", "1" , cmoOverwrite
  195.     CreateIniKeyValue ini$, "zoom", "factor", "200" , cmoOverwrite
  196.  
  197. '* create the program manager group & items
  198.  
  199.     CreateProgmanGroup "AXIA CBS", WinDir$+"axiacbs.grp", cmoNone
  200.     ShowProgmanGroup  "AXIA CBS", 1, cmoNone
  201.  
  202.     CreateProgmanItem "AXIA CBS", "Axia CBS", MakePath(DEST$,"bin\axia.exe ")+SrcDir$, MakePath(DEST$,"bin\axiaicon.ico")+",,,,"+DEST$, cmoOverwrite
  203.     CreateProgmanItem "AXIA CBS", "SlideShow", MakePath(DEST$,"bin\pictures.exe ")+SrcDir$+" pictures.dat 5", MakePath(DEST$,"bin\slidshow.ico")+",,,,"+DEST$, cmoOverwrite
  204.     CreateProgmanItem "AXIA CBS", "HTUA", MakePath(DEST$,"bin\axia.exe ")+SrcDir$+" Ahtua.afs", MakePath(DEST$,"bin\htua.ico")+",,,,"+DEST$, cmoOverwrite
  205.     CreateProgmanItem "AXIA CBS", "Read Me", MakePath(GetWindowsDir, "write.exe")+" "+SrcDir$+"other\readme.wri", ",,,,", cmoOverwrite
  206.  
  207. INFO:
  208.     sz$ = UIStartDlg(CUIDLL$, AXIAINFO,"FInfoDlgProc", APPHELP, HELPPROC$)
  209.     IF sz$ = "CONTINUE" THEN
  210.         UIPop 1
  211.     ELSE
  212.         GOSUB ASKQUIT
  213.         GOTO INFO
  214.     END IF
  215.  
  216. '*    IF DoesFileExist (MakePath(WinSysDir$, "msvideo.dll"),femExists) = 0 THEN
  217.     InstallVfW
  218. '*    END IF
  219. '*    CloseLogFile
  220.  
  221. ASKQUIT:
  222.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  223.  
  224.     IF sz$ = "EXIT" THEN
  225.         UIPopAll
  226.         ERROR STFQUIT
  227.     ELSEIF sz$ = "REACTIVATE" THEN
  228.         GOTO ASKQUIT
  229.     ELSE
  230.         UIPop 1
  231.     END IF
  232.     RETURN
  233.  
  234. END SUB
  235.  
  236.  
  237.  
  238. '**
  239. '** Purpose:
  240. '**     Appends a file name to the end of a directory path,
  241. '**     inserting a backslash character as needed.
  242. '** Arguments:
  243. '**     szDir$  - full directory path (with optional ending "\")
  244. '**     szFile$ - filename to append to directory
  245. '** Returns:
  246. '**     Resulting fully qualified path name.
  247. '*************************************************************************
  248. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  249.     IF szDir$ = "" THEN
  250.         MakePath = szFile$
  251.     ELSEIF szFile$ = "" THEN
  252.         MakePath = szDir$
  253.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  254.         MakePath = szDir$ + szFile$
  255.     ELSE
  256.         MakePath = szDir$ + "\" + szFile$
  257.     END IF
  258. END FUNCTION
  259.  
  260. '*** Installation for video for windows
  261.  
  262. SUB InstallVfW STATIC
  263.  
  264. VFWINIT:
  265.   
  266.     CUIDLL$ = "vwcuistf.dll"            ''Custom user interface dll
  267.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  268.     
  269.     WIN32ENABLED% = 0
  270.     MajorVer% = GetWindowsMajorVersion()
  271.     MinorVer% = GetWindowsMinorVersion()
  272.  
  273.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  274.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  275.     END
  276.     END IF
  277.  
  278.     IF OnWindowsNT() THEN
  279.       i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  280.       END
  281.     END IF
  282.  
  283.     SetBitmap CUIDLL$, LOGO
  284.     SetTitle "Video for Windows 1.1 Runtime"
  285.  
  286.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  287.     IF szInf$ = "" THEN
  288.        szInf$ = GetSymbolValue("STF_CWDDIR") + "VFWSETUP.INF"
  289.     END IF
  290.     ClearCopyList
  291.     ReadInfFile szInf$
  292.  
  293.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  294.  
  295. VWWELCOME:
  296.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  297.     IF sz$ = "CONTINUE" THEN
  298.        UIPop 1
  299.      ELSE
  300.     GOSUB VWASKQUIT
  301.     GOTO VWWELCOME
  302.     END IF
  303.  
  304. ''Prepare Copy list and check size
  305.  
  306.     ClearCopyList
  307.     SrcDir$ = GetSymbolValue("STF_SRCDIR") + "vfwrt"
  308.     WinDir$ = GetWindowsDir()
  309.     DEST$ = GetWindowsDir()
  310.     WinSysDir$ = GetWindowsSysDir()
  311.  
  312. ''  Runtime files (on Windows disk)
  313.  
  314.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  315.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  316.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  317.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  318.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  319.     AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$
  320.  
  321. ''  Check windrive diskspace
  322.     SizeReq& = GetCopyListCost ("","", "")
  323.     IF SizeReq& <> 0 THEN
  324.     GOSUB VWSMALLWIN
  325.     END
  326.     END IF
  327.  
  328.     VWInstall
  329.  
  330. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  331. '' else, it gives the user the choice
  332.     RESTRT% = RestartListEmpty ()
  333.     Exe$ = DEST$ + "\_msrstrt.exe"
  334.     Batch$ = DEST$ + "\_mssetup.bat"
  335.     empty$ = ""
  336. VWRESTART:
  337.     IF RESTRT% = 0 THEN
  338.        sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  339.        IF sz$ = "REACTIVATE" THEN
  340.       GOTO VWRESTART
  341.        ENDIF
  342.        I% = ExitExecRestart ()
  343.        RemoveFile Exe$, cmoForce
  344.        RemoveFile Batch$, cmoForce
  345.        END
  346.     ELSE
  347.        sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  348.        IF sz$ = "CONTINUE" THEN
  349.       I% = ExitWindowsExec (Exe$, empty$)
  350.       IF I% = 0 THEN
  351.          GOTO VWRESTART
  352.       ELSE
  353.          END
  354.      ENDIF
  355.        ELSEIF sz$ = "EXIT" THEN
  356.       UIPopAll
  357.       END
  358.        ELSEIF sz$ = "REACTIVATE" THEN
  359.       GOTO VWRESTART
  360.        ELSE
  361.       UIPop 1
  362.        END IF
  363.     END IF
  364.  
  365.  
  366. VWQUIT:
  367. '*    ON ERROR GOTO VWERRQUIT
  368.  
  369.     IF ERR = 0 THEN
  370.     dlg% = EXITSUCCESS
  371.     ELSEIF ERR = STFQUIT THEN
  372.     dlg% = EXITQUIT
  373.     ELSE
  374.     dlg% = EXITFAILURE
  375.     END IF
  376. VWQUITL1:
  377.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  378.     IF sz$ = "REACTIVATE" THEN
  379.     GOTO VWQUITL1
  380.     END IF
  381.     UIPop 1
  382.     END
  383.  
  384. VWERRQUIT:
  385.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  386.     END
  387.  
  388.  
  389. VWASKQUIT:
  390.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  391.  
  392.     IF sz$ = "EXIT" THEN
  393.     UIPopAll
  394. ''        ERROR STFQUIT
  395.     END
  396.     ELSEIF sz$ = "REACTIVATE" THEN
  397.     GOTO VWASKQUIT
  398.     ELSE
  399.     UIPop 1
  400.     END IF
  401.     RETURN
  402.  
  403. VWSMALLWIN:
  404.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  405.     IF sz$ = "REACTIVATE" THEN
  406.     GOTO VWSMALLWIN
  407.     END IF
  408.     UIPop 1
  409.     RETURN
  410.  
  411.  
  412. END SUB
  413.  
  414. '**
  415. '** Purpose:
  416. '**     Performs all installation operations for the Video for Windows 1.1 runtime.
  417. '** Arguments:
  418. '**     none.
  419. '** Returns:
  420. '**     none.
  421. '*************************************************************************
  422. SUB VWInstall STATIC
  423.  
  424.     SetRestartDir WinDir$
  425.     CopyFilesInCopyList
  426.  
  427. ''Updating WIN.INI and SYSTEM.INI
  428.     IF VflatdPresent() = 0 THEN
  429.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  430.     END IF
  431.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  432.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  433.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  434.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  435.     I% = DoesIniKeyExist (WinDir$+"system.ini", "Drivers", "VIDC.RT21")
  436.     IF I% = 0  THEN
  437.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  438.     END IF
  439.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  440.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  441.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  442.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  443.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  444.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  445.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  446.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  447.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  448.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  449.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  450.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  451.  
  452. '' Mplayer
  453.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  454.  
  455.     Run ("profdisp.exe")   
  456. END SUB
  457.